import React, { Component } from 'react'
// 需求: 接收app传递过来的c数据,如果c变化了,则更新Test1,如果没有变化,则Test1不更新
export default class Test1 extends Component {
  state = {
    msg: 'hello',
  }
  shouldComponentUpdate(nextProps, nextState) {
    // 注意: 其他的生命周期钩子函数(比如:render,挂载,更新)this.props和this.state一定是最新的数据.但是shouldCompnentUpdate比较特殊,this.props和this.state反而是旧数据
    // 上一次的c是什么. this.props旧的props数据,this.state就是旧的state数据
    // 新的c是什么. nextProps新的props数据, nextState就是新的状态数据
    // console.log('旧', this.props)
    // console.log('新', nextProps)

    // if (this.props.c !== nextProps.c) {
    //   return true
    // } else {
    //   return false
    // }

    return this.props.c !== nextProps.c || this.state.msg !== nextState.msg
  }
  render() {
    console.log('Test1更新了')
    return (
      <div>
        Test1,
        <div>{this.state.msg}</div>
        <button
          onClick={() => {
            this.setState({
              msg: 'hello world',
            })
          }}
        >
          修改msg
        </button>
      </div>
    )
  }
}
